/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package horario.modelo.dao;

import horario.conexion.ConectaDB;
import horario.modelo.interfaces.GastoDAO;
import horario.recursos.beans.BeanCentroCosto;
import horario.recursos.beans.BeanProyectoXMiembro;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.ArrayList;

/**
 *
 * @author Pc1
 */
public class MySQLGastoDAO implements GastoDAO {

    public boolean insertar(String nombre, String descripcion) throws Exception {
        boolean res = false;
        int insertados = -1;
        Connection conn = new ConectaDB().getAcceso();
        String store = "{call SP_INSERTAR_CENTROCOSTO(?,?)}";
        CallableStatement call = conn.prepareCall(store);
        call.setString(1, nombre);
        call.setString(2, descripcion);

        insertados = call.executeUpdate();

        if (insertados != -1) {
            res = true;
        }
        call.close();
        conn.close();

        return res;
    }

    public ArrayList<BeanCentroCosto> buscarCentroCosto(String cadBuscar) throws Exception {
        ArrayList<BeanCentroCosto> lista = new ArrayList<BeanCentroCosto>();
        BeanCentroCosto bean = null;
        CallableStatement call = null;
        Connection conn = null;
        try {
            conn = new ConectaDB().getAcceso();
            String store = "{call SP_LISTAR_CENTROCOSTO(?)}";
            call = conn.prepareCall(store);
            call.setString(1, cadBuscar);

            ResultSet rs = call.executeQuery();

            while (rs.next()) {
                bean = new BeanCentroCosto(rs.getInt("idcentro_costo"),
                        rs.getString("nombre"),
                        rs.getString("descripcion"));

                lista.add(bean);
            }
        } catch (Exception e) {
            System.out.println(e);
        } finally {
            if (call != null) {
                call.close();
                System.out.println("se cerro el call");
            }
            if (conn != null) {
                conn.close();
                System.out.println("se cerro el conn");
            }
        }
        return lista;
    }

    public ArrayList<BeanProyectoXMiembro> buscarProyectosXMiembro(int idMiembro) throws Exception {
        ArrayList<BeanProyectoXMiembro> lista = new ArrayList<BeanProyectoXMiembro>();
        BeanProyectoXMiembro bean = null;
        CallableStatement call = null;
        Connection conn = null;
        
        try {
            conn = new ConectaDB().getAcceso();
            String store = "{call SP_LISTAR_PROYECTOS_X_USUARIO(?,?,?)}";
            call = conn.prepareCall(store);
            call.setInt(1, idMiembro);
            call.setInt(2, 0);
            call.setInt(3, 1);

            ResultSet rs = call.executeQuery();

            while (rs.next()) {
                bean = new BeanProyectoXMiembro(rs.getInt("idproyecto"),
                        rs.getString("nombre"),
                        rs.getDate("fecha_inicio"),
                        "",
                        rs.getString("tipo"));

                lista.add(bean);
            }
        } catch (Exception e) {
            System.out.println(e);
        } finally {
            if (call != null) {
                call.close();
                System.out.println("se cerro el call");
            }
            if (conn != null) {
                conn.close();
                System.out.println("se cerro el conn");
            }
        }
        
        return lista;
    }
    
    
}
